package com.ynet.middleground.mobile.approve.response;

import java.io.Serializable;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @ClassName ApprovePersonDTO
 * @Description 可选审批人层级结构
 * @Author liwq
 * @Date 2021/3/26 15:06
 * @Version 1.0
 */
@Data
@ApiModel(value = "可选审批人层级结构信息")
public class ApprovePersonDTO implements Serializable {

    /**
     * 唯一主键
     */
    @ApiModelProperty(value = "唯一主键")
    private String uniqueKey;

    /**
     * 父项ID
     */
    @ApiModelProperty(value = "父项 id")
    private String parentId;

    /**
     * 用户 id 或角色 id 或组织机构 id
     */
    @ApiModelProperty(value = "用户 id 或角色 id 或组织机构 id")
    private String id;

    /**
     * 渠道号
     */
    @ApiModelProperty(value = "渠道号")
    private String channel;

    /**
     * 渠道名称
     */
    @ApiModelProperty(value = "渠道名称")
    private String channelName;

    /**
     * 用户名或角色名或组织机构名称
     */
    @ApiModelProperty(value = "用户名或角色名或组织机构名称")
    private String name;

    /**
     * 类型 0: 渠道 1: 机构 2: 部门 3: 角色 4: 用户
     */
    @ApiModelProperty(value = "类型 0: 渠道 1: 机构 2: 部门 3: 角色 4: 用户")
    private String type;

    /**
     * 其他信息，目前只有type=4时候返回，代表员工钉钉ID
     */
    @ApiModelProperty(value = "其他信息，目前只有type=4时候返回，代表员工钉钉ID")
    private String otherMessage;

    /**
     * 下级信息，类型 type 为 0、1 时有该字段信息，规则同 data 一样，理论 child 可以无限极延展
     */
    @ApiModelProperty(value = "下级信息，类型 type 为 0、1 时有该字段信息，规则同 data 一样，理论 child 可以无限极延展")
    private List<ApprovePersonDTO> child;

}
